\chapter{Alternatives envisagées}

\section{Rôle de GraphComponent}
Au départ, nous avions placé la plus grande partie de nos traitements dans la classe GraphComponent. 
Comme elle gérait toutes les arêtes et les sommets, cela facilitait l'accès à ces données (par exemple pour vérifier qu'il n'y avait qu'un seul état initial). 
Cette classe a donc été amenée à gérer notamment les sauvegardes et chargements, ce qui n'était pas du tout son rôle. 
Nous avons donc replacé ces traitements dans notre classe héritant de GraphFrame. 

\section{DataReder et DataWriter}
Il avait été envisagé une classe gérant le chargement et la sauvegarde. Toutefois ils s'est révélé judicieux de diminuer le couplage en séparant ces deux tâches dans deux classes distinctes.
De plus l'enregistrement et la sauvegarde ne s'effectuent pas via la serialisation mais plutôt par l'utilisation du XML. Ainsi le fichier pourrait être utilisé facillement par des outils externes ou encore lu et compris par un être humain.

\section{DataToAutomaton}
La classe DataToAutomaton était originellement contenue dans GraphComponent, toutefois afin d'augmenter la modularité de l'application  cette classe a été externalisée.

\section{StringToArray}
stringToArray est une classe static permettant de convertir une chaine de caractère en un tableau.
Cette classe est utile pour la création de l'automate. Dans le but de ne pas modifier les fichiers originaux, notamment la classe DeterminiticAutomaton nous avons déplacé le code vers StringToArray.

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../main"
%%% End: 
